const mysql = require('mysql');
const config = require('../config').config.mysql;
exports.mysql = mysql.createPool(config);
// 用于保存数据连接实例
var db = null;
var pingInterval;

// 如果数据连接出错，则重新连接
function handleError(err) {
    connect();
}

// 建立数据库连接
function connect() {
    if (db !== null) {
        db.destroy();
        db = null;
    }

    db = mysql.createConnection(config);
    db.connect(function (err) {
        if (err) {
            setTimeout(connect, 2000);
        }
    });
    db.on("error", handleError);

    // 每个小时ping一次数据库，保持数据库连接状态
    clearInterval(pingInterval);
    pingInterval = setInterval(() => {
        console.log('ping...');
        db.ping((err) => {
            if (err) {
                console.log('ping error: ' + JSON.stringify(err));
            }
        });
    }, 600000);
}
connect();
exports.reConnect = function(){
    connect();
}